// app.js
App({
  globalData: {
    userInfo: null,
    token: null,
    baseUrl: 'http://localhost:8080',
    shopStatus: 1, // 店铺营业状态
    cartCount: 0   // 购物车商品数量
  },

  onLaunch() {
    // 小程序启动时执行
    console.log('小程序启动')
    this.checkLoginStatus()
    this.getShopStatus()
  },

  onShow() {
    // 小程序显示时执行
    console.log('小程序显示')
  },

  onHide() {
    // 小程序隐藏时执行
    console.log('小程序隐藏')
  },

  onError(msg) {
    // 小程序发生错误时执行
    console.error('小程序错误:', msg)
  },

  // 检查登录状态
  checkLoginStatus() {
    const token = wx.getStorageSync('token')
    const userInfo = wx.getStorageSync('userInfo')
    
    if (token && userInfo) {
      this.globalData.token = token
      this.globalData.userInfo = userInfo
    }
  },

  // 获取店铺营业状态
  getShopStatus() {
    wx.request({
      url: `${this.globalData.baseUrl}/user/shop/status`,
      method: 'GET',
      success: (res) => {
        if (res.data.code === 1) {
          this.globalData.shopStatus = res.data.data
        }
      },
      fail: (err) => {
        console.error('获取店铺状态失败:', err)
      }
    })
  },

  // 设置用户信息
  setUserInfo(userInfo, token) {
    this.globalData.userInfo = userInfo
    this.globalData.token = token
    
    // 存储到本地
    wx.setStorageSync('userInfo', userInfo)
    wx.setStorageSync('token', token)
  },

  // 清除用户信息
  clearUserInfo() {
    this.globalData.userInfo = null
    this.globalData.token = null
    
    // 清除本地存储
    wx.removeStorageSync('userInfo')
    wx.removeStorageSync('token')
  },

  // 更新购物车数量
  updateCartCount() {
    if (!this.globalData.token) {
      this.globalData.cartCount = 0
      return
    }

    wx.request({
      url: `${this.globalData.baseUrl}/user/shoppingCart/list`,
      method: 'GET',
      header: {
        'Authorization': `Bearer ${this.globalData.token}`
      },
      success: (res) => {
        if (res.data.code === 1) {
          this.globalData.cartCount = res.data.data.length
        }
      },
      fail: (err) => {
        console.error('获取购物车数量失败:', err)
      }
    })
  },

  // 显示提示信息
  showToast(title, icon = 'none', duration = 2000) {
    wx.showToast({
      title,
      icon,
      duration
    })
  },

  // 显示加载中
  showLoading(title = '加载中...') {
    wx.showLoading({
      title,
      mask: true
    })
  },

  // 隐藏加载中
  hideLoading() {
    wx.hideLoading()
  }
})
